home *** CD-ROM | disk | FTP | other *** search
/ HTBasic 9.3 / HTBasic 9.3.iso / 83win / data1.cab / Basic_Plus_Examples / HPGLVIEW < prev    next >
Text File  |  2001-03-02  |  4KB  |  129 lines

  1. 10    ! ******************************************************************
  2. 20    ! Example: HPGL VIEW Viewer
  3. 30    !
  4. 40    ! This program demonstrates the use of the HPGL VIEW widget.
  5. 50    ! You can use the Menu to import any HPGL file (files with
  6. 60    ! a .gl extension).
  7. 70    !
  8. 80    ! ******************************************************************
  9. 90    !
  10. 100   ! Variables Used:
  11. 110   !
  12. 120   !   S$:         General-purpose string
  13. 130   !   N:          General-purpose variable
  14. 140   !   Btn:        Returns button value from dialogs
  15. 150   !   Glfile$:    Name of HPGL file to be read
  16. 160   !   Dirname$:   Directory name returned from FILE dialog
  17. 170   !
  18. 180       DIM S$[256]
  19. 190       INTEGER N,Btn,Err
  20. 200       DIM Glfile$[100],Dirname$[100]
  21. 210   !
  22. 220   ! Widget dimensions
  23. 230   !
  24. 240       INTEGER Pw,Ph,Px,Py,Iw,Ih,Hw,Hh,Hx,Hy
  25. 250   !
  26. 260   ! Variables for display scaling
  27. 270   !
  28. 280       INTEGER Dw,Dh,D(1:4)
  29. 290   !
  30. 300   ! Get display size
  31. 310   !
  32. 320       GESCAPE CRT,3;D(*)
  33. 330       Dw=D(3)-D(1)
  34. 340       Dh=D(4)-D(2)
  35. 350   !
  36. 360       Pw=Dw*.7             ! PANEL width
  37. 370       Ph=Dh*.7             ! PANEL height
  38. 380       Px=(Dw-Pw)/2         ! Center PANEL
  39. 390       Py=(Dh-Ph)/2
  40. 400   !
  41. 410   ! Create PANEL for HPGL widget
  42. 420   !
  43. 430       ASSIGN @Main TO WIDGET "PANEL";SET ("VISIBLE":0)
  44. 440       CONTROL @Main;SET ("X":Px,"Y":Py,"WIDTH":Pw,"HEIGHT":Ph)
  45. 450       CONTROL @Main;SET ("TITLE":" Example: HPGL Viewer")
  46. 460       CONTROL @Main;SET ("SIZE CONTROL":"RESIZE CHILDREN")
  47. 470       CONTROL @Main;SET ("MINIMIZABLE":1)
  48. 480   !
  49. 490   ! Build menu
  50. 500   !
  51. 510       ASSIGN @Menu TO WIDGET "PULLDOWN MENU";PARENT @Main
  52. 520       CONTROL @Menu;SET ("LABEL":"Menu")
  53. 530       ASSIGN @Getfile TO WIDGET "MENU BUTTON";PARENT @Menu
  54. 540       CONTROL @Getfile;SET ("LABEL":"Get HPGL File")
  55. 550       ASSIGN @Cd TO WIDGET "MENU BUTTON";PARENT @Menu
  56. 560       CONTROL @Cd;SET ("LABEL":"Change Directory")
  57. 570       ASSIGN @S TO WIDGET "MENU SEPARATOR";PARENT @Menu
  58. 580       ASSIGN @Quit TO WIDGET "MENU BUTTON";PARENT @Menu
  59. 590       CONTROL @Quit;SET ("LABEL":"Quit")
  60. 600   !
  61. 610   ! Create and size HPGL VIEW widget. (Setting RETAIN RASTER
  62. 620   ! redraws the widget quickly when overwritten by a dialog.)
  63. 630   !
  64. 640       ASSIGN @Hpgl TO WIDGET "HPGL VIEW";PARENT @Main
  65. 650       CONTROL @Hpgl;SET ("BACKGROUND":0)
  66. 660       CONTROL @Hpgl;SET ("RETAIN RASTER":0)
  67. 670       STATUS @Main;RETURN ("INSIDE WIDTH":Iw,"INSIDE HEIGHT":Ih)
  68. 680       Hx=Iw*.01
  69. 690       Hy=Ih*.01
  70. 700       Hh=Ih*.98
  71. 710       Hw=Iw*.98
  72. 720       CONTROL @Hpgl;SET ("X":Hx,"Y":Hy,"WIDTH":Hw,"HEIGHT":Hh)
  73. 730   !
  74. 740   ! Set events
  75. 750   !
  76. 760       ON EVENT @Getfile,"ACTIVATED" GOSUB Gethpgl
  77. 770       ON EVENT @Cd,"ACTIVATED" GOSUB Chdir
  78. 780       ON EVENT @Quit,"ACTIVATED" GOTO Finis
  79. 790   !
  80. 800       CONTROL @Main;SET ("VISIBLE":1)
  81. 810   !
  82. 820   ! Loop and wait for input
  83. 830   !
  84. 840       LOOP
  85. 850           WAIT FOR EVENT
  86. 860       END LOOP
  87. 870       STOP
  88. 880   !
  89. 890   ! This routine gets an HPGL file and displays it
  90. 900   !
  91. 910  Gethpgl:!
  92. 920       S$="Please enter the name of an HPGL file:"
  93. 930       DIALOG "FILE",S$,Btn;RETURN ("SELECTION":Glfile$)
  94. 940   !
  95. 950       IF Btn=0 THEN
  96. 960           CLEAR ERROR
  97. 970           ON ERROR GOSUB Seterr
  98. 980           CONTROL @Hpgl;SET ("HPGL FILE":Glfile$)
  99. 990           OFF ERROR
  100. 1000           IF ERRN<>0 THEN
  101. 1010               DIALOG "ERROR","Cannot open file/invalid HPGL file"
  102. 1020           ELSE
  103. 1030               DIALOG "INFORMATION","File read completed"
  104. 1040           END IF
  105. 1050       END IF
  106. 1060       RETURN
  107. 1070  !
  108. 1080  ! This routine changes directories
  109. 1090  !
  110. 1100  Chdir:!
  111. 1110       S$="Please enter the name of a directory:"
  112. 1120       DIALOG "FILE",S$,Btn;RETURN ("DIRECTORY":Dirname$)
  113. 1130       CLEAR ERROR
  114. 1140       ON ERROR GOSUB Seterr
  115. 1150       MASS STORAGE IS Dirname$
  116. 1160       OFF ERROR
  117. 1170       IF ERRN<>0 THEN
  118. 1180           DIALOG "ERROR","Cannot change directory"
  119. 1190       END IF
  120. 1200       RETURN
  121. 1210  !
  122. 1220  ! Dummy routine for error traps
  123. 1230  !
  124. 1240  Seterr: ERROR RETURN
  125. 1250  !
  126. 1260  Finis:!
  127. 1270       ASSIGN @Main TO *! Deletes PANEL widget
  128. 1280       END
  129.